var _n69;
var cc__extends = __extends;
Object.defineProperty(exports, "__esModule", {
  value: true
});
var $miniGameApiBase = require("miniGameApiBase");
var a = window.qg;
var def_oppoApi = function (t) {
  function _ctor() {
    // 调用父类构造函数并确保返回当前上下文
    var instance = null !== t && t.apply(this, arguments) || this;

    // 设置广告管理组件的基本属性
    instance.m_AppId = "";                  // 应用ID
    instance.m_Secret = "";                  // 密钥
    instance.m_VideoAdIdIndex = 0;          // 视频广告ID索引
    instance.m_VideoAdIdList = [];           // 视频广告ID列表
    instance.m_BannerAdIdIndex = 0;         // 横幅广告ID索引
    instance.m_BannerAdId = [];              // 横幅广告ID列表
    instance.m_InsertAdIdIndex = 0;         // 插入广告ID索引
    instance.m_InsertAdId = [];              // 插入广告ID列表
    instance.m_videoAd = undefined;          // 视频广告对象
    instance.m_BannerAd = undefined;         // 横幅广告对象
    instance.bannerSuccese = false;          // 横幅广告是否成功标志

    // 返回创建的实例
    return instance;

  }
  cc__extends(_ctor, t);
  _ctor.prototype.validAppId = function () {
    console.log("oppo-api-validAppId");
  };
  _ctor.prototype.ready = function () {
    console.log("oppo-api-ready");
  };
  _ctor.prototype.getUserInfo = function (t) {
    a.getUserInfo(t);
  };
  _ctor.prototype.showToast = function (t) {
    a.showToast(t);
  };
  _ctor.prototype.showLoading = function (t) {
    a.showLoading(t);
  };
  _ctor.prototype.hideLoading = function () {
    a.hideLoading();
  };
  _ctor.prototype.showModal = function () { };
  _ctor.prototype.authorize = function (t) {
    t.success && t.success();
  };
  _ctor.prototype.login = function (t) {
    a.login(t);
  };
  _ctor.prototype.getVideoAdId = function () {
    // 获取当前索引对应的广告ID
    var adId = this.m_VideoAdIdList[this.m_VideoAdIdIndex];

    // 更新索引以指向下一个广告ID
    this.m_VideoAdIdIndex++;

    // 如果索引超过广告ID列表长度，则重置为0
    if (this.m_VideoAdIdIndex >= this.m_VideoAdIdList.length) {
      this.m_VideoAdIdIndex = 0;
    }

    // 返回当前广告ID
    return adId;

  };
  _ctor.prototype.loadAndShowVideoAd = function (t, e, o) {
    var instance = this; // 保存当前上下文

    // 创建视频广告实例，如果尚不存在
    if (!this.m_videoAd) {
      this.m_videoAd = a.createRewardedVideoAd({
        adUnitId: this.getVideoAdId() // 获取广告单元ID
      });
    }

    // 视频广告关闭后的处理函数
    var onClose = function (result) {
      if (result && result.isEnded) {
        successCallback(); // 如果视频观看完毕，调用成功回调
      } else {
        errorCallback("视频中途退出"); // 如果视频未观看完，调用错误回调
      }
      instance.m_videoAd.offClose(onClose); // 移除关闭事件监听
      if (errorCallback) errorCallback(); // 调用错误回调
    };

    // 加载视频广告
    this.m_videoAd.load().then(function () {
      // 显示视频广告
      instance.m_videoAd.show().then(function () {
        instance.m_videoAd.onClose(onClose); // 绑定关闭事件监听
      }).catch(function (showError) {
        errorCallback("视频显示错误: " + JSON.stringify(showError)); // 错误处理
        instance.m_videoAd.offClose(onClose); // 移除关闭事件监听
        if (errorCallback) errorCallback(); // 调用错误回调
      });
    }).catch(function (loadError) {
      errorCallback("视频加载错误: " + JSON.stringify(loadError)); // 错误处理
      instance.m_videoAd.offClose(onClose); // 移除关闭事件监听
      if (errorCallback) errorCallback(); // 调用错误回调
    });

  };
  _ctor.prototype.getInsertAdId = function () {
    // 获取当前索引对应的广告ID
    var adId = this.m_InsertAdId[this.m_InsertAdIdIndex];

    // 更新索引以指向下一个广告ID
    this.m_InsertAdIdIndex++;

    // 如果索引超过广告ID列表长度，则重置为0
    if (this.m_InsertAdIdIndex >= this.m_InsertAdId.length) {
      this.m_InsertAdIdIndex = 0;
    }

    // 返回当前广告ID
    return adId;

  };
  _ctor.prototype.showInsertAd = function (t, e) {
    console.log("加抖音 插屏 广告"); // 输出加载广告的日志

    var adId = this.getInsertAdId(); // 获取插屏广告ID
    var interstitialAd = a.createInterstitialAd({
      adUnitId: adId // 创建插屏广告实例
    });

    // 加载插屏广告
    interstitialAd.load();

    interstitialAd.onLoad(function () {
      console.warn("插屏广告 加载完成"); // 广告加载成功日志
      interstitialAd.show().catch(function (error) {
        console.warn("插屏广告 显示失败 :" + JSON.stringify(error)); // 显示失败日志
        interstitialAd.destroy(); // 销毁广告实例
        interstitialAd = null; // 置为空
        if (e) e(); // 调用回调函数
      });
    });

    interstitialAd.onError(function (error) {
      console.warn("插屏广告 加载失败" + JSON.stringify(error)); // 加载失败日志
      interstitialAd.destroy(); // 销毁广告实例
      interstitialAd = null; // 置为空
      if (e) e(); // 调用回调函数
    });

    interstitialAd.onClose(function () {
      console.warn("插屏广告 关闭"); // 广告关闭日志
      if (interstitialAd) {
        interstitialAd.destroy(); // 销毁广告实例
        interstitialAd = null; // 置为空
      }
      if (t) t(); // 调用回调函数
    });

  };
  _ctor.prototype.getBannerAdId = function () {
    // 获取当前索引对应的广告ID
    var adId = this.m_BannerAdId[this.m_BannerAdIdIndex];

    // 更新索引指向下一个广告ID
    this.m_BannerAdIdIndex++;

    // 如果索引超过广告ID列表长度，则重置为0
    if (this.m_BannerAdIdIndex >= this.m_BannerAdId.length) {
      this.m_BannerAdIdIndex = 0;
    }

    // 返回当前广告ID
    return adId;

  };
  _ctor.prototype.showBannerAD = function (t, e, o, n, i) {
    var instance = this; // 保存当前上下文
    var systemInfo = a.getSystemInfoSync(); // 获取系统信息
    var screenWidth = systemInfo.screenWidth; // 屏幕宽度
    var screenHeight = systemInfo.screenHeight; // 屏幕高度

    // 计算广告位置
    var position = i && i({
      screenWidth: screenWidth,
      screenHeight: screenHeight
    }) || cc.v2(0, 0);

    // 检查是否需要销毁当前的横幅广告
    if (this.m_BannerAd && !this.bannerSuccese) {
      this.m_BannerAd.destroy(); // 销毁广告实例
      this.m_BannerAd = null; // 置为空
    }

    // 如果横幅广告已经存在
    if (this.m_BannerAd) {
      // 显示广告
      this.m_BannerAd.show().then(function () {
        if (e) e(); // 调用成功回调
        console.log("---------------------Banner广告直接显示成功");
      }).catch(function (error) {
        if (o) o(error); // 调用错误回调
        console.log("---------------------Banner广告直接显示组件出现问题", JSON.stringify(error));
      });
    } else {
      this.bannerSuccese = true; // 标记广告状态

      // 创建新的横幅广告
      if (this.m_BannerAd == null) {
        this.m_BannerAd = a.createBannerAd({
          adUnitId: this.getBannerAdId(),
          adIntervals: 30,
          style: {
            left: position.x, // 设置广告位置
            top: position.y
          }
        });
      }

      // 处理广告大小变化
      this.m_BannerAd.onResize(function (resizeInfo) {
        console.log(resizeInfo.width, resizeInfo.height, "banner长宽");
      });

      // 广告加载完成的处理
      this.m_BannerAd.onLoad(function () {
        if (t && t.active && t.isValid) {
          instance.bannerSuccese = false; // 更新广告状态
          instance.m_BannerAd.show().then(function () {
            console.log("---------------------Banner广告显示成功");
            instance.m_BannerAd.onHide(function () {
              console.log("oppo-banner 广告隐藏");
              if (n) n(); // 广告隐藏时调用回调
            });
          }).catch(function (error) {
            console.log("---------------------Banner广告组件显示出现问题", JSON.stringify(error));
          });
        } else {
          console.log("---------------------------------------------------------");
        }
      });

      // 处理广告加载错误
      this.m_BannerAd.onError(function (error) {
        instance.bannerSuccese = false; // 更新广告状态
        console.log("---------------------Banner广告加载错误,错误原因：", JSON.stringify(error));
      });
    }

  };
  _ctor.prototype.hideBanner = function () { };
  _ctor.prototype.recordedGameScreenStart = function (t, e) {
    console.log("oppo-api-recordedGameScreenStart");
    e && e(null);
  };
  _ctor.prototype.recordedGameScreenStop = function () {
    console.log("oppo-api-recordedGameScreenStop");
    return true;
  };
  _ctor.prototype.shareRecordedGameScreen = function (t) {
    console.log("oppo-api-shareRecordedGameScreen");
    t && t();
  };
  _ctor.prototype.isHaveRecordedGameScreen = function () {
    return true;
  };
  return _ctor;
}($miniGameApiBase.MiniGameApiBase);
exports.default = def_oppoApi;